package jdk8.method.reference.demo05.thisX.method.reference;

/**
 * 通过this引用本类的成员方法
 */
public class Husband {
    public void buyHouse() {
        System.out.println("深圳十环买一套房子");
    }

    public void marry(Richable r) {
        r.buy();
    }

    // 定义一个高兴的方法(结婚高不高兴?)
    public void soHappy() {
        // 调用结婚的方法, 因为Richable十函数式接口, 可以传递Lambda
        marry(() -> {
            // 使用this调用成员方法
            this.buyHouse();
        });
    }

    // 方法引用优化
    public void ReferenceSohappy() {
        marry(this::buyHouse);
    }

    public static void main(String[] args) {
        new Husband().soHappy();
        new Husband().ReferenceSohappy();
    }

}
